package patronDecorator;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//import modelo.Producto;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

import patronDecorator.Producto;
import patronDecorator.NewJDialogProducto;


public class ControladorVentanaProducto {
	private NewJDialogProducto produc;
	private DecoradorIva1 diva;
	
	public ControladorVentanaProducto(JFrame frm) {
		produc = new NewJDialogProducto(frm, this);
		produc.getjBtoAgregar().setEnabled(true);
		produc.setVisible(true);
		
		produc.getjBtoSalir().addActionListener(new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				produc.dispose();
			}
	
	});
		if(!produc.getjTxtCodigoProducto().equals("") || !produc.getjTxtNombreProducto().equals("") || !produc.getjTxtDescripcion().equals("")
				|| !produc.getjTxtPrecio().equals(null)){
			produc.getjBtoAgregar().addActionListener(new ActionListener(){

				@Override
				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					produc.getjBtoAgregar().setEnabled(true);
					}
				});
			
			produc.getJBtonprecioIva().addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					Producto pr = new Producto(produc.getjTxtCodigoProducto().getText(),produc.getjTxtNombreProducto().getText(),produc.getjTxtDescripcion().getText(), Float.parseFloat(produc.getjTxtPrecio().getText()),produc.getjTxtCodigoCategoria().getText());
					diva = new DecoradorIva1(pr);
					IvaProductoDAO ipdao = new IvaProductoDAO();
					ipdao.registrar(pr);
					produc.getjTextFieldiva().setText(String.valueOf(diva.CalcularOperacion()));
					produc.getjTextFieldiva().setVisible(true);
				}
			});
	
			produc.getjBtoAgregar().addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					if(produc.getjTxtCodigoProducto().getText() == "" || produc.getjTxtNombreProducto().getText() == "" || produc.getjTxtDescripcion().getText() == "" || produc.getjTxtPrecio().getText().isEmpty()
						|| produc.getjTxtCodigoCategoria().getText() == ""){
						JOptionPane.showMessageDialog(null, " Debe llenar todos los campos", "Informacion", JOptionPane.INFORMATION_MESSAGE);
					}
					else{
					ProductoDAO pdao = new ProductoDAO();
					pdao.registrarProducto((((new Producto(produc.getjTxtCodigoProducto().getText(),produc.getjTxtNombreProducto().getText(),produc.getjTxtDescripcion().getText(), Float.parseFloat(produc.getjTxtPrecio().getText()),produc.getjTxtCodigoCategoria().getText())))));
					produc.dispose();								
					JOptionPane.showMessageDialog(null, " Producto registrado", "Informacion", JOptionPane.INFORMATION_MESSAGE);
					}
					}	
				//}								
			});
							
			produc.getJBtoproductoBuscar().addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					ProductoDAO dao = new ProductoDAO();		
					
					Producto pr = dao.ConsultarProducto(produc.getjTxtCodigoProducto().getText()); //consultar
					if (pr == null){
						JOptionPane.showMessageDialog(null, "No existe producto.");
						produc.getjBtoAgregar().setEnabled(true);
					}
					else {
						produc.getJBtonprecioIva().setEnabled(true);
						produc.getjBtoAgregar().setEnabled(false);
						produc.getjTxtNombreProducto().setText(pr.getNombreProducto());
						produc.getjTxtDescripcion().setText(pr.getDescripcion());
						produc.getjTxtPrecio().setText(Float.toString(pr.getPrecio()));
						produc.getjTxtCodigoCategoria().setText(pr.getCodigocategoria());
						
						IvaProductoDAO ipdao = new IvaProductoDAO();
						DecoradorIva1 d = ipdao.obtenerDecorador(pr);
						if (d != null) {
							produc.getJBtonprecioIva().setEnabled(false);
							diva = d;
							produc.getjTextFieldiva().setText(String.valueOf(diva.CalcularOperacion()));
							produc.getjTextFieldiva().setVisible(true);
						} else {
							diva = null;
							produc.getjTextFieldiva().setVisible(false);
						}
					}
				}
			});
		}
	}
}
	

